package marketplace.ejb.interfaces;

import java.util.List;

import javax.ejb.Remote;

import marketplace.jpa.datas.DataAdministrador;
import marketplace.jpa.datas.DataCliente;
import marketplace.jpa.datas.DataContenidoDigital;
import marketplace.jpa.datas.DataProveedor;
import marketplace.jpa.datas.DataRegistroAcceso;
import marketplace.jpa.entities.Usuario;

@Remote
public interface IUsuarioEJB {

	public abstract boolean existeAdministrador(String mail, String password)
			throws Exception;

	public abstract boolean guardarAdministrador(String nick, String nombre,
			String email, String apellido, String password, String fechaNto, String movil,
			char sexo) throws Exception;

	public abstract void modificarAdministrador(DataAdministrador dub)
			throws Exception;

	public abstract void eliminarAdministrador(String mail) throws Exception;

	public abstract List<DataAdministrador> getAdministradores()
			throws Exception;

	public abstract DataAdministrador obtenerAdministrador(String mail)
			throws Exception;

	public abstract boolean existeProveedor(String mail, String password)
			throws Exception;

	public abstract boolean guardarProveedor(String nick, String nombre,
			String email, String apellido, String password, String fechaNto, String movil,
			char sexo, String qr) throws Exception;

	public abstract void modificarProveedor(DataProveedor dub) throws Exception;

	public abstract void eliminarProveedor(String mail) throws Exception;

	public abstract List<DataProveedor> getProveedores() throws Exception;

	public abstract DataProveedor obtenerProveedor(String mail)
			throws Exception;

	public abstract boolean guardarCliente(DataCliente cli) throws Exception;

	public abstract List<DataCliente> getListaClientes() throws Exception;

	public abstract void eliminarCliente(String mail) throws Exception;

	public abstract DataCliente buscarCliente(String mail) throws Exception;

	public abstract void modificarCliente(DataCliente dc) throws Exception;

	public abstract boolean existeCliente(String email) throws Exception;

	public abstract boolean validarLogin(String mail, String pass) throws Exception;

	public abstract boolean RegistroClienteACanal(String mail, String idRegistroGCM) throws Exception;

	public abstract String getCodigoClienteAndroid(String mail) throws Exception;
	
	public abstract boolean registrarAcceso(DataRegistroAcceso dr) throws Exception;
	
	public abstract List<DataRegistroAcceso> getRegistrosAcceso() throws Exception;
	
	public abstract String getRegistrosAccesoX() throws Exception;
	
	public abstract String getRegistrosAccesoY() throws Exception;

	public abstract List<DataContenidoDigital> getContenidoDigitalesWishlist(String email) throws Exception;

	public abstract void agregarContenidoWishlist(String email, int idContenido) throws Exception;

	public abstract boolean existeEnWishlist(String email, int idContenido) throws Exception;

}